home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 23 Geos Applications / PA1124.BIN / 1124printdocs
Text File  |  1990-02-12  |  8KB  |  121 lines

  1. ─╧├╒═┼╬╘┴╘╔╧╬ ╞╧╥ 1124╨╥╔╬╘ BY ╞RANKLIN ╙TEARNS
  2.  
  3. 1124╨╥╔╬╘ IS A SET OF ╟┼╧╙ PRINTER DRIVERS FOR THE ╨ANASONIC ╦╪-╨1124 PRINTER IN BOTH THE ┼PSON ╠╤-2500 AND ╔┬═ ╨ROPRINTER ╪24 MODES, USING EITHER 8-PIN OR 24-PIN BIT IMAGE PRINTING.
  4.  
  5. ╘HE MAJOR PROBLEM HERE IS THE TRANSLATION OF ╟┼╧╙'S 80-CARD (640-BYTE) SCREEN LINE OUTPUT INTO A PRINTED LINE WITH VARIOUS DOT DENSITIES WITHIN THE CONFINES OF A STANDARD 8.5 INCH PAPER WIDTH (8 INCH PRINT WIDTH).
  6.  
  7. ─OT DENSITIES AVAILABLE ON THE 1124 ARE, IN DOTS PER INCH (DPI): 60, 80, 90, 120, 180, 240, AND 360.
  8.  
  9. ┴ 640-BYTE SCREEN LINE PRINTED AT 60 DPI WILL TAKE 640/60 = 10.67 INCHES, WHICH IS MORE THAN THE 8 INCH WIDTH AVAILABLE.  ╘HE 1124 WILL USE ONLY ENOUGH BYTES TO FILL THE PRINTED LINE (480-BYTES), RESULTING IN A TRUNCATED SCREEN LINE.  ╔N ADDITION, THE PRINTED GRAPHIC IMAGE WILL BE 133% LARGER THAN IF THE WHOLE SCREEN LINE WAS SQUEEZED INTO THE 8 INCH PAPER WIDTH.
  10.  
  11. ╘HREE SOLUTIONS COME TO MIND:  1) USE A SCREEN LINE OUTPUT OF 60-CARDS (480-BYTES), WHICH WILL NEATLY FIT INTO A 8 INCH PAPER WIDTH AT 60 DPI (MAKE SURE THAT YOUR GRAPHIC SCREEN IMAGES ARE NOT WIDER THAT 60-CARDS);  2) USE AN OUTPUT OF 80-CARDS AND BE CONTENT WITH A TRUNCATED SCREEN LINE AND A SOMEWHAT WIDE PRINTED IMAGE (THIS IS NOT TOO BAD IF YOUR SCREEN IMAGE IS LESS THAN 60-CARDS WIDE);  OR 3) USE A TRANSLATION ALGORITHM THAT COMPRESSES 640-BYTES INTO 480-BYTES, MOST SIMPLY BY DISCARDING 25% OF THE BYTES (EG., EVERY FOURTH BYTE), WHICH WILL DEGRADE MOST IMAGES (ALTHOUGH SOME CAN STAND THIS KIND OF COMPRESSION).
  12.  
  13. ┴T THE OTHER END OF THE DENSITY SPECTRUM, A 640-BYTE SCREEN LINE PRINTED AT 360 DPI WILL TAKE 640/360 = 1.78 INCHES, CONSIDERABLY LESS THAN THE 8 INCH PAPER WIDTH AVAILABLE, RESULTING IN VERY SMALL PRINTED IMAGES (WHICH, NEVERTHELESS, MAY BE USEFUL FOR SPECIAL EFFECTS).
  14.  
  15. ╘HE SOLUTION HERE, IF YOU WANT THE FULL PAPER WIDTH TO REPRESENT THE FULL SCREEN WIDTH, IS TO USE A TRANSLATION ALGORITHM THAT EXPANDS 640-BYTES INTO THE 360*8 = 2880 DOTS THAT CAN BE PRINTED IN 8 INCHES AT 360 DPI.  ╘HE TRANSLATION ALGORITHM, HOWEVER, IS NOT AS SIMPLE AS MIGHT BE SUPPOSED SINCE 2880 IS NOT AN INTEGER MULTIPLE OF 640 (2880/640 = 4.5).  ╘HREE POSSIBLE ALGORITHMS ARE 1) PRINT EACH DOT 4 TIMES, GIVING 2560 DOTS, A 7.11 INCH PRINTED WIDTH, AND A PRINTED IMAGE 88% AS WIDE AS IT SHOULD BE;  2) PRINT EACH DOT 4 OR 5 TIMES ALTERNATELY, GIVING THE 2880 DOTS WE NEED, A FULL 8 INCH PRINT WIDTH AND A "NORMAL" WIDTH PRINTED IMAGE, BUT SOMEWHAT DISTORTING THE SCREEN IMAGE (NOT VERY APPARENT, HOWEVER, AT THE SMALL DOT SPACINGS OF 360 DPI);  OR 3) PRINT EACH DOT 5 TIMES, GIVING 3200 DOTS, A 8.88 INCH PRINTED WIDTH (WHICH WILL BE TRUNCATED BY THE PRINTER), AND A PRINTED IMAGE 111% WIDER THAN IT SHOULD BE.
  16.  
  17. ╔ ENGAGE IN THIS BRIEF DISCUSSION OF TRANSLATION PROBLEMS ONLY TO SHOW THAT MANY PRINTER DRIVERS ARE NECESSARY IF YOU WANT TO COVER ALL POSSIBLE WAYS TO PRINT A ╟┼╧╙ (OR ANY OTHER) SCREEN.  ├OMPROMISE IS NEEDED.  1124╨╥╔╬╘ PROVIDES DRIVERS FOR 60-CARD AND 80-CARD LINES WITH TRANSLATION ALGORITHMS AS FOLLOWS:
  18.  
  19. 60-CARD LINE:
  20.    60 DPI  8"   PRINT WIDTH  100% WIDTH  MULTIPLE BYTE PATTERN 11111111
  21.    80 DPI  7.5" PRINT WIDTH   94% WIDTH  MULTIPLE BYTE PATTERN 11121112
  22.    90 DPI  8"   PRINT WIDTH  100% WIDTH  MULTIPLE BYTE PATTERN 21212121
  23.   120 DPI  8"   PRINT WIDTH  100% WIDTH  MULTIPLE BYTE PATTERN 22222222
  24.   180 DPI  8"   PRINT WIDTH  100% WIDTH  MULTIPLE BYTE PATTERN 33333333
  25.   240 DPI  8"   PRINT WIDTH  100% WIDTH  MULTIPLE BYTE PATTERN 44444444
  26.   360 DPI  8"   PRINT WIDTH  100% WIDTH  MULTIPLE BYTE PATTERN 66666666
  27.  
  28. 80-CARD LINE:
  29.    60 DPI  8"   PRINT WIDTH  133% WIDTH  MULTIPLE BYTE PATTERN 11111111
  30.    80 DPI  8"   PRINT WIDTH  100% WIDTH  MULTIPLE BYTE PATTERN 11111111
  31.    90 DPI  7.1" PRINT WIDTH   88% WIDTH  MULTIPLE BYTE PATTERN 11111111
  32.   120 DPI  8"   PRINT WIDTH  100% WIDTH  MULTIPLE BYTE PATTERN 12121212
  33.   180 DPI  8"   PRINT WIDTH  100% WIDTH  MULTIPLE BYTE PATTERN 22232223
  34.   240 DPI  8"   PRINT WIDTH  100% WIDTH  MULTIPLE BYTE PATTERN 33333333
  35.   360 DPI  8"   PRINT WIDTH  100% WIDTH  MULTIPLE BYTE PATTERN 45454545
  36.  
  37. ╫HENEVER BYTES ARE ADDED, AS ABOVE, TO EXPAND THE PRINTED LINE TO FIT AN 8 INCH PRINT WIDTH YOU ARE ESSENTIALLY INTERPOLATING BETWEEN TWO ADJACENT COLUMNS OF 8 DOTS (PIXELS) ON THE SCREEN.  ╘HE SIMPLEST INTERPOLATION ALGORITHM IS TO JUST REPEAT THE FIRST DOT COLUMN SEVERAL TIMES, THUS ASSUMING AN ABRUPT, RATHER THAN GRADUAL, CHANGE BETWEEN ADJACENT COLUMNS.  ╘HIS DOES NOT DEGRADE THE SCREEN IMAGE, BUT IT CERTAINLY DOES NOT IMPROVE IT ANY.  ╓ARIOUS OTHER INTERPOLATION ALGORITHMS MAY BE USED, INVOLVING ┴╬─ING, ╧╥ING, BIT SHIFTING, ETC.  1124╨╥╔╬╘ USES THE SIMPLEST REPEAT INTERPOLATION ALGORITHM ONLY (SORRY ABOUT THAT; MAYBE LATER VERSIONS WILL BE DIFFERENT).
  38.  
  39. ╞OR 24-PIN PRINTING THE 8-BITS IN ONE BYTE OF ╟┼╧╙ OUTPUT (REPRESENTING 8 VERTICAL PIXELS ON THE SCREEN) MUST BE EXPANDED TO FIT 24 PINS.  1124╨╥╔╬╘ PROVIDES THREE VERTICAL SIZE VARIATIONS FOR 24-PIN PRINTING:  1) FULL SIZE, WHERE EACH ╟┼╧╙ BIT IS ASSIGNED TO 3 PINS (ALL 24 PINS USED);  2) 2/3 SIZE, WHERE EACH ╟┼╧╙ BIT IS ASSIGNED TO 2 PINS (TOP 16 PINS ONLY USED);  AND 3) 1/3 SIZE WHERE EACH ╟┼╧╙ BIT IS ASSIGNED TO 1 PIN (TOP 8 PINS ONLY USED).
  40.  
  41. ╞OR ┴╙├╔╔ PRINTING (EITHER DRAFT OR ╬╠╤) ALL OUTPUT IS CONTROLLED BY THE SETTINGS ON THE FRONT PANEL OF THE 1124 PRINTER.  ╘HUS, YOU HAVE FULL ACCESS TO THE BUILT-IN FONTS, PITCHES, AND LINE SPACINGS AVAILABLE ON THE PRINTER.
  42.  
  43. ╔N THE ╠╤-2500 MODE RESET OF THE PRINTER FROM GRAPHICS TO ┴╙├╔╔ MODE IS AUTOMATIC. ╚OWEVER, IN THE ╔┬═ ╪24 MODE ┘╧╒ ═╒╙╘ ═┴╬╒┴╠╠┘ ╥┼╙┼╘ ╘╚┼ ╨╥╔╬╘┼╥ BEFORE ┴╙├╔╔ PRINTING.  ╔NCIDENTLY, MAKE SURE THAT THE PRINTER IS SET TO THE SAME MODE (╠╤ OR ╪24) AS THE 1124╨╥╔╬╘ DRIVER BEING USED; OTHERWISE YOU WILL PRINT ONLY GARBAGE.
  44.  
  45. 1124╨╥╔╬╘ USES A DEVICE NUMBER OF 4, A SECONDARY ADDRESS OF 5, AND ADDS A LINEFEED TO EACH CARRIAGE RETURN.  ╨LEASE SET YOUR PRINTER INTERFACE ACCORDINGLY.  ╘HE FOLLOWING MEMORY LOCATIONS CONTAIN THESE VALUES AND MAY BE CHANGED IF NECESSARY:
  46.  
  47.    $7938 DEVICENUMBER
  48.    $793E SECADDR
  49.    $793F ADD╠╞  $00 NO LINEFEED  $FF ADD LINEFEED
  50.  
  51. ╞OR ╟┼╧╙ ═╠ PROGRAMMERS THE FOLLOWING PROGRAM OUTLINE MAY BE OF INTEREST:
  52.  
  53.    $7900 ╩UMP╘ABLE
  54.    $7918 ╨RINTER╬AME
  55.    $7929 PRNTBLCARD
  56.    $7931 FLAGSANDCOUNTERS
  57.    $7947 ╧PEN╞ILE
  58.    $7959 ├LOSE╞ILE
  59.    $796B ╧PEN╨RINT
  60.    $797A ├LOSE╨RINT
  61.    $797E ╙END┬YTES
  62.    $798F ╙TART╨RINT
  63.    $7994 ╙TART╨RINT┴
  64.    $79C4 ─ELAY
  65.    $79CF ╨RINT┬UFFER
  66.    $79F0 ╙TOP╨RINT
  67.    $7A09 ╟ET─IMENSIONS
  68.    $7A12 ╙TART┴╙├╔╔
  69.    $7A1A ╨RINT┴╙├╔╔
  70.    $7A4D ╨RINT╨RINT┬UFFER
  71.    $7A95 ╘EST┬UFFER
  72.    $7AD0 ╔NIT╨RINTER
  73.    $7B04 ╔NIT├ODE
  74.    $7B0C ╟RETURN
  75.    $7B1C ╞ORM╞EED
  76.    $7B22 ╥OTATE
  77.    $7B35 ╙ET╟RAPHICS
  78.    $7BBB ╟RAPHICS├ODE╠╤
  79.    $7BC0 ╟RAPHICS├ODE╪24
  80.    $7BC6 ╙END┬UFF8
  81.    $7BDE ╙END┬UFF24
  82.    $7BE5 ╙END┬UFF24-╞ULL
  83.    $7C1E ╙END┬UFF24-2/3
  84.    $7C4B ╙END┬UFF24-1/3
  85.    $7C68 ═ULTAB1  5 TABLES FOR HORIZONTAL INTERPOLATION
  86.    $7C70 ═ULTAB2
  87.    $7C78 ═ULTAB3
  88.    $7C80 ═ULTAB4
  89.    $7C88 ═ULTAB5
  90.    $7C90 ╘AB╚╚  5 TABLES FOR 24-PIN VERTICAL INTERPOLATION
  91.    $7CA0 ╘AB╚╠
  92.    $7CB0 ╘AB╠╚
  93.    $7CC0 ╘AB╠╠
  94.    $7CD0 ╘AB2
  95.    $7CE0 ╧UTPUT┬UFF24
  96.    $7CF3 ╔NIT╞OR╨RINT
  97.    $7D59 ─┬1─EFINITION
  98.    $7D9B ─┬1╔CON╔NFO
  99.    $7DC3 ─┬1╙ERVICE╥OUTINES
  100.    $7E2C ─┬2─EFINITION
  101.    $7E5A ─┬2╔CON╔NFO
  102.    $7E72 ─┬2╙ERVICE╥OUTINES
  103.    $7E93 ╘AB5  DOTDENCODES TABLE
  104.    $7E98 ╘AB6  TABLE OF MULTPLIERS TO FIND LINE LENGTH
  105.    $7E9D ╘AB7  TABLE OF DIVISORS TO FIND LINE LENGTH
  106.    $7EA2 ╘AB8  LOW ADDRESSES OF ═ULTAB
  107.    $7EA7 ╘AB13  TABLE OF VERTSIZE FLAGS
  108.    $7EAA ╘AB14  TABLE OF ╠╞SIZE
  109.    $7EAD ╘AB15  TABLE OF CARDSDEEP
  110.    $7EB0 ╨OS╘AB  TABLE OF ─┬ ICON POSITIONS
  111.    $7EB5 EMPTYBOXGRAPHICS
  112.    $7EBB FILLEDBOXGRAPHICS
  113.    $7EBD ─┬╙TRINGS
  114.    $7F2B ╨ATCH┴REA
  115.  
  116. ╔ HOPE THESE DRIVERS WILL BE OF USE TO YOU.  ├OMMENTS, QUESTIONS, ETC. TO:
  117.  
  118. ╞RANKLIN ╙TEARNS 3306 ═C╦INLEY ╙TREET, ╬╫ ╫ASHINGTON, ─├ 20015
  119.  
  120. ╔╥╧╬ ON ╤LINK 70701,112 ON ├OMPU╙ERVE
  121.